package com.easipass.framework.eirframeworkcoredsl;

public class SourceDestinationNode extends AstNode {

    private final DestinationNode destinationNode;

    public SourceDestinationNode(DestinationNode destinationNode, int endPos) {
        super(destinationNode.startPos, endPos);
        this.destinationNode = destinationNode;
    }

    @Override
    public String stringify(boolean includePositionalInfo) {
        return destinationNode.stringify(includePositionalInfo) + ">";
    }

    @Override
    public String toString() {
        return destinationNode.toString() + " > ";
    }

    public DestinationNode getDestinationNode() {
        return destinationNode;
    }

    public SourceDestinationNode copyOf() {
        return new SourceDestinationNode(destinationNode.copyOf(), super.endPos);
    }

    public String getDestinationName() {
        return destinationNode.getDestinationName();
    }

    public ArgumentNode[] getArguments() {
        return this.getDestinationNode().getArguments();
    }

    @Override
    public void accept(Visitor visitor) {
        if (visitor.preVisit(this)) {
            visitor.visit(this);
            visitor.postVisit(this);
        }
    }
}
